package com.open.capacity.model.system;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

import lombok.Data;

/**
 * @author 作者 ftquan E-mail: 464725602@qq.com
 * @version 创建时间：2017年11月12日 上午22:57:51
 * 用户实体
 */
@Data
@TableName("sys_user")
public class SysUser extends Model<SysUser> implements Serializable {

    private static final long serialVersionUID = -5886012896705137070L;
    @TableId(value = "id", type = IdType.ID_WORKER)  //雪花算法  id生成策略

    private String id;
    private String userCode;
    private String userName;
    private String password;
    private String realName;
    private String nickName;
    private String simpleSpelling;
    private String category; //员工类型
    private String nature; //人员性质
    private String type; //账号类型
    private String levels;//职级
    private String position;//职称
    private String job;//现任职务
    private String technicalLevel; //技术级别
    private String grade; //档次
    private String headUrl;
    private String code;
    private String tel;
    private String phone;
    private String email;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date entryDate;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date birthday;
    private Integer sex;
    private String companyId;
    private String departmentId;
    private String companyName;
    private String departmentName;
    private String driverLicense;
    private Integer isDriver;
    //  private Integer sort;

    private String salaryBankNo;
    private String salaryBankName;
    private String salaryBankAccount;
    private String officialBankNo;
    private String officialBankName;
    private String officialBankAccount;

    private Date workDate; // 工作日期
    private String college;//院校
    private String education;// 学历
    private String degree; //学位
    private String major; //专业
    private String nativePlace;  //籍贯

    private String birthplace; //出生地
    private String idnumber; //身份证号
    private String marriage; //婚姻
    private String partyMember;//政治面貌
    private Date partyDate; //入党日期

    private String description;
    private String bankAccount;
    private Integer status;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss.SSS")
    private Date createTime;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss.SSS")
    private Date updateTime;

    @TableField(exist = false)
    private List<SysRole> roles;

    @TableField(exist = false)
    private String roleIds;

    @TableField(exist = false)
    private String postIds;

    @TableField(exist = false)
    private String postNames;

    @TableField(exist = false)
    private String oldPassword;

    @TableField(exist = false)
    private String newPassword;

    //手工签名
    private String signature;

    /**
     * 流程实例id
     */
    @TableField(exist = false)
    private String wfProcessId;

}
